package com.xbongbong.paas.model;

import com.xbongbong.paas.domain.entity.PaasProcessTaskEntity;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.UpdateDataEntity;

import java.util.List;
import java.util.Map;

/**
 * Description: 流程任务相关
 * @author 李杰
 * @date 2019/1/21 16:25
 * @version v1.0
 * @since v1.0
 */
public interface PaasProcessTaskModel extends IModel<PaasProcessTaskEntity> {

    /**
     * 插入实体
     *
     * @param entity 实体
     *
     * @return Integer MyBatis操作结果 1：成功
     */
    @Override
    Integer insert(PaasProcessTaskEntity entity);

    /**
     *  查询列表
     * @author wufeng
     * @date 2018/8/13 16:07
     * @param entity
     * @descption
     * @return java.util.List<ApplicationListVO>
     */
    List<PaasProcessTaskEntity> list(Map<String, Object> entity);

    /**
     * 查询单个实体
     * @param key
     * @param corpid
     * @return
     */
    PaasProcessTaskEntity getByKey(Integer key, String corpid);
    /**
     *  查询列表数量
     * @author wufeng
     * @date 2018/8/13 16:07
     * @param entity
     * @descption
     * @return Integer
     */
    @Override
    Integer getEntitysCount(Map<String, Object> entity);

    /**
     * 删除实体
     * @author wufeng
     * @date 2018/8/6 17:18
     * @param entity 实体
     * @descption
     * @return java.lang.Integer  mybatis操作结果，1：成功
     */
    Integer delete(PaasProcessTaskEntity entity);

    /**
     *  更新名字
     * @author wufeng
     * @date 2018/8/13 10:19
     * @param entity
     * @descption
     * @return java.lang.Integer
     */
    @Override
    Integer update(PaasProcessTaskEntity entity);

    @Override
    List<PaasProcessTaskEntity> findEntitys(Map<String, Object> param);

    /**
     * 批量插入
     * @param list
     * @return
     */
    void insertBatch(List<PaasProcessTaskEntity> list);

    /**
     * 查询已经删除的钉钉实例id
     * @param param
     * @return
     */
    List<PaasProcessTaskEntity> getDingtalkProcessInstanceId(Map<String, Object> param);

    Integer updateInstockAndOutstockType(List<UpdateDataEntity> list) throws XbbException;

    Integer deleteByFormId(Long formId, String corpid);
}
